package e.g.com.pt2acqlc.server;

import java.util.Vector;
import java.sql.*;



public class BaseDeDonnees {
	
	    // import des variables pour la base de donnees postgres
		private Connection connection_base = null;
		private static ResultSet resultat = null;
		private Statement        sql;       // Our statement to run queries with
		private DatabaseMetaData dbmd; 
		
			public BaseDeDonnees() throws SQLException {
				
			// chargement du pilote
			   try {
				   Class.forName("org.postgresql.Driver");
			   } catch (ClassNotFoundException e) {
			      arret("Impossible de charger le pilote jdbc:odbc");
			   }
			   
			   //connection a la base de données
			   affiche("Connexion à la base de données en cours...");
			   try {
			      //String DBurl = "jdbc:postgresql://www-etu-info.iut2.upmf-grenoble.fr/postgres-info/bdbaret";
				   String DBurl = "jdbc:postgresql://www.rdbhost.com/db/colf38@yahoo.fr";
			      connection_base = DriverManager.getConnection(DBurl, "r0000001159", "");
			   } catch (Exception e) {
			      arret("Connection à la base de données impossible");
			   }
			   
			   dbmd = connection_base.getMetaData();
			   sql = connection_base.createStatement();
			   
			 //creation et execution de la requete
			   affiche("Création et execution de la requête");
			   String requete = "SELECT * FROM Question";
			   try {
			   resultat = sql.executeQuery(requete);
			   } catch (SQLException e) {
			   arret("Anomalie lors de l'execution de la requête");
			   }
			   	
} 
			
			private static void affiche(String message) {
				   System.out.println(message);
				}
				private static void arret(String message) {
				   System.err.println(message);
				   System.exit(99);
				}
				
				@SuppressWarnings("null")
				public Vector<String[]> getListeQuestions() throws SQLException {
					ResultSetMetaData rsmd = resultat.getMetaData();
				    int nbCols = rsmd.getColumnCount();
				    Vector<String[]> Vecteur = new Vector<String[]>();
				    String Tableau [] = null;
				    while(resultat.next()) {
				    	for (int i = 1; i <= nbCols; i++) {
				    		Tableau[i] = resultat.getString(i).toString();
				    	}
				    	Vecteur.add(Tableau);
				    }
				    return Vecteur;
				}
				public void setResultat(String requete)  throws SQLException{
					try {
						   resultat = sql.executeQuery(requete);
						   } catch (SQLException e) {
						   arret("Anomalie lors de l'execution de la requête");
						   }
				}
				
				public String getMdpValide(String pseudo,String mdp) throws SQLException{
					
				//creation et execution de la requete
				   affiche("Création et execution de la requête");
				   String requete = "SELECT pseudo FROM joueurs where pseudo="+pseudo+" and mdp"+mdp;
				   setResultat(requete);
				   String strRes ="";
				   if(resultat!=null){
					   resultat.next();
					   strRes= resultat.getString(1);
					   }
				   return strRes;
				}
}
